package com.wms.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;

/**
 * 仓库管理系统-用户信息实体类
 * @author Yzxxn
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("user")
public class User {
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 员工编号（业务唯一）
     */
    @TableField("user_code")
    private String userCode;

    /**
     * 登录账号（系统登录用）
     */
    @TableField("username")
    private String username;

    /**
     * 用户姓名（真实姓名）
     */
    @TableField("name")
    private String name;

    /**
     * 用户密码（加密存储）
     */
    @TableField("password")
    private String password;

    /**
     * 角色（如：管理员、仓管员等）
     */
    @TableField("role")
    private String role;

    /**
     * 性别：1-男，2-女
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @TableField("gender")
    private Integer gender;

    /**
     * 联系方式（手机号）
     */
    @TableField("phone")
    private String phone;

    /**
     * 状态：1-有效，0-无效
     */
    @TableField("status")
    private Integer status;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;
}
